package com.data.center.dto;

import io.swagger.annotations.ApiModel;
import lombok.Data;

import java.util.HashMap;

/**
 * @Description:一个业务方的输入对象，包含数据部分和增量部分
 * */
@Data
@ApiModel
public class TestDto extends BaseDto{

    /*数据部分*/
    String name;
    String[] abbreviation;

    /*增量部分，以map形式在父类中存储*/
    // additionalInformation

    public TestDto() {
    }

    // 测试
    public static void main(String[] args) {
        TestDto testDto = new TestDto();
        testDto.additionalInformation = new HashMap<>(); // 仅在有附加信息时实例化并绑定MAP对象，减少消耗
        testDto.additionalInformation.put("name", "覆盖更新"); // 假设业务方给定且仅给定了name键的附加信息，且信息为"覆盖更新"

        System.out.println(testDto.getAdditionalInformation("name")); // 在使用数据对象时，可以直接取出name键的增量信息
        System.out.println(testDto.getAdditionalInformation("abbreviation")); // 在使用数据对象时，由于业务方没给定abbreviation的增量信息,无法取出对应的增量信息、得到null

        System.out.println(testDto.getKeyWithAdditionalInformation()); // 获取数据对象的所有有增量信息的键
    }

}
